Recently it is general to transmit digital signals between digital electronic appliances. As the standard for transmission of digital audio data, the IEC60958 is known. Lately, as the serial transmission standard suited to multimedia application, the IEEE1394 is established.
The IEEE1394 system can be used not only in place of computer data transmission by the conventional SCSI (small computer system interface) system, but also m transmission of AV data such as audio and video. This is because both communication methods of asynchronous communication and isochronous communication are defined in this IEEE1394 system.
Isochronous communication is a data transmission method used in transmion of data where real-time operation is demanded such as AV data. In isochronous communication, prior to start of transmission, a band necessary for transmission of data is acquired. The data is transmitted by using this band. As a result, the real-time operation of data transmission is guaranteed
On the other hand, asynchronous communication is a transmission method used in transmission of data or control of devices where real-time operation is not demanded such as transmission of computer data.
Further, a protocol of transmission of digital audio data and MIDI (musical instrument digital interface) on the IEEE1394 bus is standardized as A/M protocol (audio and music data transmission protocol) by the 1394 Trade Association. In this standard, a standard for transmitting audio data of IEC60958 format is specified. This A/M protocol makes use of CIP (common isochronous packet) defined in the IEC61883.
FIG. 3 shows the composition of CIP. The CIP is composed of a packet header, a data field, and a data CRC. The data field is further divided into a CIP header and a data block. Data to be transmitted is inserted in the data block, and in particular the composition of 8-bit label and 24-bit data is called AM824 data. The IEC60958 format data is classified as a kind of AM824 data
FIG. 4 shows the composition and label content of AM824 data. The content of label in A/M protocol Ver. 1 is IEC60958, raw audio, and MIDI. The raw audio is analog audio data to be digitized directly, and it is the raw data not containing accessory information
FIG. 5 shows the composition of AM824 data in IEC60958 format. In the case of IEC60958 format, 24-bit data is one sub-frame. One frame, which is the minimum unit of audio data, is composed of two sub-frames in the case of two-channel stereo. When two higher bits of the label are both 0, that is, when the value of the label is in a range of 00h to 3Fh, it means the IEC60958 format, and the composition of its six lower bits is as shown in FIG. 5.
As the transmission protocol on the IEEE1394, other methods have been also proposed. One of them is the AV protocol. The AV protocol is standardized as IEC (International Electromechanical Commission) 61883, and a method of transmitting and receiving real-time AV data by isochronous communication, and a method of transmitting and receiving device commands by asynchronous communication are specified.
In the case of data transmission and reception by isochronous communication, the transmitting and receiving systems are determined for each data format such as video data and audio data. For example, for transmission and reception of audio data of CD or the like, the method of transmission is designated in the AM protocol (audio and music data transmission protocol) Ver. 1.0 established at 1394 Trade Association (1394TA). In the AM protocol, mainly two-channel audio data transmission is assumed, but recently appliances handling audio data of three channels or more are being developed. Expansion of the standard has been discussed in order to cope with such appliances. An expansion plan is disclosed as Enhancement to Audio and Music Data Transmission Protocol Working Draft Version 0.1, Apr. 7, 1999, of 1394TA.
First, as an introductory knowledge, the audio data transmitting and receiving method mentioned in the AM protocol expansion plan is explained below in the sequence of packet transmission timing on the bus, transmission of clock information, and packet composition.
FIG. 14 is a diagram showing the packet transmission timing on the IEEE1394 bus. In FIG. 14, CS is a cycle start packet, ISO is an isochronous packet used in isochronous communication, and Asy is an asynchronous packet used in asynchronous communication. In the IEEE1394, of the nodes connected to the bus, the cycle master node issues a cycle start packet in every isochronous cycle (125 μs). Following the cycle start packet, the node for transmitting the isochronous packet starts a transmission arbitrate operation, and transmits the isochronous packet after acquiring the bus. After each isochronous packet transmission, when a blank time called isochronous gap passes, other node starts a transmission arbitrate operation f isochronous packet transmission, and the packet is transmitted. When all isochronous packets have been transmitted, following a blank time called sub-action gap, the node attempting to transmit an asynchronous packet starts an asynchronous transmission arbitrate operation, and transmits an asynchronous packet after acquiring the bus. Since the sub-action gap is set longer than the isochronous gap, the isochronous packet is processed by priority. Hence, a specific transmission rate is assured.
Clock information transmission of data is explained.
FIG. 15 is a diagram showing clock information transmission between a transmission node and a reception node. In FIG. 15, a cycle master node 1201 issues a cycle start packet containing a reference count. A transmission node 1202 and a reception node 1203 are connected with an IEEE1394 bus 1204. In the IEEE1394 bus, as mentioned above, various packets are transmitted in timesharing, but in FIG. 15, for the convenience of explanation, two kinds of data lines are used for reference count and isochronous packet.
The IEEE1394 bus is designed to connect nodes one by one, and does not branch into a T. In actual connection, therefore, for example, the cycle master node 1201 and transmission node 1202 are connected by one cable, and the transmission node 1202 and reception node 1203 are connected by other cable. Conceptually, herein, in order to show that three nodes have a common reference count, the connection is shown in a T-form.
The cycle master node 1201 has reference clock generating means 1205 and counter 1206. Similarly, the transmission node 1202 has reference clock generating means 1207 and counter 1208, and the reception node 1203 has reference clock generating means 1211 and counter 1212. The reference clock generating means 1205, 1027, and 1211 are independent of each other. Counting of the counters 1206, 1208, and 1212 is corrected by the reference count included in the cycle start packet issued by the cycle master node 1201. Therefore, the count value of each node has an error of only less than the reference clock resolution of each node.
The transmission nodes 1202 further includes time stamp generating means 1209 which generates a time stamp by receiving an audio clock (for example, 44.1 kHz in the case of a CD) and counting from the counter 1208, and packeting means 1210 which makes an isochronous packet by receiving audio data (16-bit stereo PCM data in the case of a CD) and the time stamp.
The reception node 1203 further includes unpacketing means 1213 which receives an isochronous packet and takes out audio data and time stamp, a comparator for comparing the counting of the counter 1212 and the time stamp, and issuing a pulse when the both are matched, and a PLL 1215 which regenerates an audio clock on the basis of the pulse.
In this explanation, transmission of audio data only is described, but as mentioned below, in the AM protocol the data accessory information can be transmitted simultaneously with the data.
The composition of an isochronous packet in the AM protocol is explained. FIG. 16 shows an example of an isochronous packet in the AM protocol. The isochronous packet used in data transmission in the AM protocol includes two headers, that is, the isochronous packet header defined in the IEEE1394 and a common isochronous packet header (CIP header) defined in the AV protocol. These two headers are followed by plural data blocks, and finally there is a function of CRC (cyclic redundancy check) for the CIP header and data blocks. This is the audio signal of IEC60958 format formed into a packet according to the AM protocol. The IEC60958 format is described later. In the IEEE1394, four-byte data is handled as one unit, which is called quadlet. One line in FIG. 16 is one quadlet.
The isochronous packet header is explained in the first place.
The isochronous packet header is composed of a header main body of one quadlet, and a header CRC of one quadlet. Each field of the isochronous packet header is described. The data length refers to the byte length of the data field (CIP header and data block) following the isochronous packet header. Tg (isochronous data format tag) shows the label of the data transmitted in isochronous packet. If having the CIP header, the value of Tg is 01b (b denotes binary notation). The channel gives the channel number of logic channel from 0 to 63 of flow of isochronous packet data. tCode (transaction code) shows the packet format and transaction type. tCode of isochronous packet is Ah (h denotes hexadecimal notation). Incidentally, sy (synchronous code) is used when exchanging synchronous information between the sender side and the receiver side.
The CIP header is explained.
The CIP header used in the AM protocol is two quadlets long. First two bits of the first quadlet are 00b, and first two bits of the second quadlet are 10b.
Each field is described. SID (source ID) is a node ID of a device for sending out data. DBS (data block size) shows the size of data block following the CIP header in the quadlet unit. FN (fraction number) indicates the number of fractions when the original data to be transmitted by the IEEE1394 (DV system data by intra-frame compression of digital VTR, MPEG-TS data, etc.) is divided and data blocks are composed. FN shows four types of fractions, that is, no fraction, 2, 4, and 8 fractions. In the AM protocol, it is no fraction (00b). QPC (quadlet padding count) shows the number of quadlets of zero data added as dummy to the original data in order to express the size of the CIP in the quadlet unit when making the CIP by dividing the original data. It is 000b in the AM protocol. The bit “S” next to the QPC shows the SPH (source packet header), which indicates presence or absence of source packet data. There is no source packet header (0b) in the AM protocol. RSV is reserve, of which value is 00b. DBC (data block count) shows the count of beginning data blocks in the packet, which is used for detecting missing of packet. FMT (format) shows the major classification of signals being transmitted. It is 10h in the AM protocol. FDF (format dependent field) is defined in each FMT. In the AM protocol, the FDF of 00h to 07h is called AM824. In the AM824, each quadlet for composing the data block is divided into an 8-bit label and 24-bit data. In SYT, time stamp information is stored. The time stamp is described later.
The composition of data block is described.
In FIG. 16, two quadlets following the CIP header compose one data block The CIP contains n data blocks. The value of n varies with the attribute to the data to be transmitted. A specific example thereof is explained below.
The IEC60958 format data widely used in digital audio is defined as a kind of AM824 data. In the IEC60958, it is possible to transmit linear PCM data of 2 ch, 48 kHz sampling, and up to 24 bits, or compressed audio stream of AC3 (a kind of multi-channel audio compression), dts (digital theater system), and MPEG. In the IEC60958 format, 24-bit audio data (if less than 24 bits, the LSB (least significant bit) side is filled with 0 to make up 24-bit data) is called one sub-frame. Two sub-frames showing two-channel stereo make one frame, and 192 frames are gathered to make up one block.
FIG. 5 shows the composition of AM824 data in the IEC60958 format. The label value of the IEC60958 format is 00h to 3Fh. The composition of six lower bits of the label is as shown in FIG. 5.
In FIG. 5, PAC (preamble code) distinguishes among three, that is, “beginning of block in channel 1, “not beginning block in channel 1”, and “other than channel 1.” P (parity) is prepared for detecting errors due to interface fault. C (channel status) expresses the information of audio data length, sampling frequency, linear PCM or not, category, etc., summing up data of 192 bits for one block. That is, to obtain these items of information, it requires data for 192 frames. In one CIP, however, only data for several frames can be stored, and tens of packets are needed for acquiring 192 frames. The content of U (user bit) is defined in each category. V (validity flag) shows whether the data of the sub-frame is valid linear PCM or not. If the validity flag is 0, its sub-frame is a valid linear PCM. In the case of 1, it is not valid linear PCM, but compressed audio data may be included in this case.
In the AM protocol two packet composing methods are specified, that is, the blocking method and non-blocking method. In the blocking method, when a specified amount of data is collected in the transmission node, the collected data is transmitted as one packet. In the non-blocking method, on the other hand, the data occurring or reaching in the transmission node in one isochronous cycle (125 μs) is transmitted as one packet. An example of non-blocking method is described below.
FIG. 17 is a diagram showing transmission and reception timing of audio data.
In the non-blocking method, audio data arriving at the packeting means 1201 in one isochronous cycle (125 μs) is gathered in one isochronous packet.
In the isochronous packet, the SYT field of the CIP header is provided with a time stamp, but since a plurality of audio data are gathered in one packet, individual audio data are not provided with time stamps. In the AM protocol, a parameter SYT_INTERVAL corresponding to the sampling frequency of data is determined. A time stamp is generated for every SYT_INTERVAL. In the case of sampling frequency of 44.1 kHz, SYT_INTERVAL is 8. The time stamp generating means 1209 divides the audio clock (44.1 kHz in the case of a CD) by SYT_INERVAL (8 divisions in CD), and samples the value of the counter 1208 by the edge of the frequency dividing signal (T1, T2, . . . in FIG. 17). A transmission delay time (usually 352 μs) is added to the sampled value, and a time stamp (R1, R2, . . . ) is obtained. That is, the time stamp designates the time of regenerating the audio data at the reception node 1203 side.
Since the generation timing of time stamp is asynchronous to the isochronous cycle, the index given in formula 1 from the DBC (data block count) of the CIP header shows the time stamp corresponds to which data in the packet.index=mod((SYT_INTERVAL−mod(DBC, SYT_INERVAL)), SYT_INTERVAL)  [Formula 1]
Thus, in the packeting means 1210, data (in the case of sampling frequency of 44.1 kHz, usually five or six pieces of data are stored in one packet) and time stamp are gathered, and one isochronous packet is formed.
This is the introductory knowledge for transmission of isochronous data on the IEEE1394.
Going back, the audio data of the IEC60958 format is linear PCM data or nonlinear PCM data such as compressed audio data. To reproduce such data, identifier A or identifier B attached to the audio data is distinguished, and the data is processed by selecting a processing method corresponding to the linear PCM (identifier A) or nonlinear PCM (identifier B). The identifier is assigned in the channel status data, and the channel status data is composed of channel status bits of 192 frames. That is, to distinguish the type of audio data, data of 192 frames is needed. In one CIP, however, only several frames can be added, and therefore tens of packets are needed for acquiring 192 frames. In other words, to distinguish the type of the audio data, a time delay of 192 frames occurs.
Accordingly, when the transmitted digital audio data is changed from the linear PCM data into nonlinear PCM data, noise occurs while the identifier decision is delayed. To prevent this, if the data is accumulated until the identifier is judged, a memory of a large capacity is needed, and delay occurs for the duration of accumulation.
FIG. 6 is a timing chart when the digital audio data changes from the linear PCM data to the nonlinear PCM data. As shown in FIG. 6, noise occurs for the duration of 192 frames until the reception side distinguishes the identifier after transition.